package net.gamasoft.sistemadeinventarios.dao;

import java.sql.ResultSet;

import net.gamasoft.sistemadeinventarios.controller.ConexionBD;
import net.gamasoft.sistemadeinventarios.model.Perfil;
import net.gamasoft.sistemadeinventarios.model.Usuario;

/**
 * 
 * @author dpaniagua
 *
 */
public class UsuarioDAO {
	/**
	 * Permite guardar un usuario en la bd.
	 * @param usuario a guardar
	 * @return true si se guardo exitosamente.
	 * @throws Exception en caso de error al guardar el usuario.
	 */
	public boolean guardarUsuario(Usuario usuario) throws Exception {
		ConexionBD conexionBD = new ConexionBD();
		boolean conectado = conexionBD.conectar();
		//Si esta conectado a la bd.
		if (conectado) {
			String sql = "INSERT INTO LOGIN (nombre, apaterno, amaterno, usuario, password, email,idPerfil) " +
				     "VALUES ('"+usuario.getNombre()+"', " +
		     		 "'"+usuario.getApaterno()+"', " +
		     		 "'"+usuario.getAmaterno()+"', " +
		     		 "'"+usuario.getUsuario()+"', " +
		     		 "'"+usuario.getPassword()+"', " +
		     		 "'"+usuario.getEmail()+"', " +
		     		  ""+usuario.getPerfil().getIdPerfil()+")";
			
			//Se ejecuta la sentencia sql.
			conexionBD.ejecutarSQL(sql);
			conexionBD.desconectar();
			return true;
		} else {
			return false;
		}
	}
	
	
	public Usuario consultarUsuarioByUserANDPassword(String user, char[] password) throws Exception {
		ConexionBD conexionBD = new ConexionBD();
		boolean conectado = conexionBD.conectar();
		//Si esta conectado
		if (conectado) {
			String sql = "SELECT * FROM LOGIN " +
						 "WHERE usuario = '"+user+"' " +
						 "AND password = '"+String.valueOf(password)+"'";

			//se ejecuta la sentencia sql
			ResultSet rs = conexionBD.ejecutarSelect(sql);

			//Si existe al menos un dato que coincida.
			if (rs.next()) {
				Usuario usuario = new Usuario();
				usuario.setUsuario(rs.getString("usuario"));
				usuario.setPassword(rs.getString("password"));
				
				Perfil perfil = new Perfil();
				perfil.setIdPerfil(rs.getInt("idPerfil"));

				usuario.setPerfil(perfil);
				conexionBD.desconectar();
				return usuario;
			} else {
				return null;
			}
		} else {
			return null;
		}
	}
}
